/**
 * typescript 主要就在于处理 类型 
 *  有时候一个函数的返回值可能是数值可能是字符串类型 当我们只想要数值的时候  就可以使用断言 
 *    这种时候如果再处理字符串 编译器就会报错
 *  断言： 白话来讲就是 我说了算 我指定了什么类型之后 就只能是什么类型
 */

function test(flag:boolean):string|number{
  return flag?'哈哈哈':999
}

let str = test(true) as string

/**
 * 正常情况下 str的类型就是 字符串或者数字
 *  使用 as 断言之后 str只能是字符串 
 *  再使用下面代码赋值数字 就会报错 编译器通过不了
 * 
 *  这个就是断言的使用
 * 
 */
// str = 111

// 这个也是常用的 先将其他类型转成 unkonw类型 再转成想转的类型
let base:string = 999 as unknown as string